home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ALF-CHAT.ZIP / HOTCHAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-24  |  24KB  |  1,455 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  INTEGER014
  34.     Integer  INTEGER015
  35.     Integer  INTEGER016
  36.     Integer  INTEGER017
  37.     Integer  INTEGER018
  38.     Integer  INTEGER019
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   STRING010
  49.     String   STRING011
  50.     String   STRING012
  51.     String   STRING013
  52.     String   STRING014
  53.     String   STRING015
  54.     String   STRING016
  55.     String   STRING017
  56.     String   STRING018
  57.     String   STRING019
  58.     String   STRING020
  59.     String   STRING021
  60.     String   STRING022
  61.     String   STRING023
  62.     String   STRING024
  63.     String   STRING025
  64.     String   STRING026
  65.     String   STRING027
  66.     String   STRING028
  67.     String   STRING029
  68.     String   STRING030
  69.     String   STRING031
  70.     String   STRING032
  71.     String   STRING033
  72.     String   STRING034
  73.     String   STRING035
  74.     String   STRING036
  75.     String   STRING037
  76.     String   STRING038
  77.     String   STRING039
  78.     String   STRING040
  79.     String   STRING041
  80.     String   STRING042
  81.     String   STRING043
  82.     String   STRING044
  83.     String   STRING045
  84.     String   STRING046
  85.     String   STRING047
  86.     String   STRING048
  87.     String   STRING049
  88.     String   STRING050
  89.     String   STRING051
  90.     String   STRING052
  91.     String   STRING053
  92.     String   STRING054
  93.     String   STRING055
  94.     String   STRING056
  95.     String   STRING057
  96.     String   STRING058
  97.     String   STRING059
  98.     String   STRING060
  99.     String   STRING061
  100.     String   STRING062
  101.     String   STRING063
  102.     String   STRING064
  103.     String   STRING065
  104.     String   STRING066
  105.     String   STRING067
  106.     String   STRING068
  107.     String   STRING069
  108.     String   STRING070
  109.     String   STRING071
  110.     String   STRING072
  111.     String   STRING073
  112.     String   STRING074
  113.     String   STRING075
  114.     String   STRING076
  115.     String   STRING077
  116.     String   STRING078
  117.     String   STRING079
  118.     String   STRING080
  119.     String   STRING081
  120.     String   STRING082
  121.     String   STRING083
  122.     String   STRING084
  123.     String   STRING085
  124.     String   STRING086
  125.     String   STRING087
  126.     String   STRING088
  127.     Time     TIME001
  128.  
  129. ;------------------------------------------------------------------------------
  130.  
  131.     STRING009 = "3.1b"
  132.     STRING001 = ""
  133.     INTEGER001 = ""
  134.     STRING002 = ""
  135.     STRING003 = ""
  136.     INTEGER009 = 1
  137.     TIME001 = Sec(Time())
  138.     STRING022 = "General Discussion"
  139.     STRING036 = Chr(27)
  140.     STRING033 = "   "
  141.     STRING011 = Chr(13)
  142.     STRING012 = STRING036 + "["
  143.     STRING013 = STRING012 + "0;0H"
  144.     STRING014 = STRING012 + "K"
  145.     STRING025 = Chr(8)
  146.     STRING026 = PcbNode()
  147.     STRING015 = PPEPath() + "HOTHELP"
  148.     STRING016 = PPEPath() + "HOTSTAT"
  149.     STRING088 = PPEPath() + "HOTTIME"
  150.     INTEGER010 = 0
  151.     STRING035 = PPEPath() + "HOTACH"
  152.     STRING017 = PPEPath() + "HOTMENU"
  153.     STRING019 = PPEPath() + "HOTTEXT"
  154.     If (Exist(STRING019 + LangExt())) Then
  155.         STRING019 = STRING019 + LangExt()
  156.     Endif
  157.     STRING034 = PPEPath() + "HOTACT"
  158.     If (Exist(STRING034 + LangExt())) Then
  159.         STRING034 = STRING034 + LangExt()
  160.     Endif
  161.     STRING018 = PPEPath() + "HOTCFG"
  162.     STRING020 = ""
  163.     STRING021 = ""
  164.     BOOLEAN001 = 0
  165.     STRING024 = ""
  166.     INTEGER011 = 0
  167.     INTEGER012 = 0
  168.     INTEGER013 = 0
  169.     INTEGER014 = 0
  170.     INTEGER015 = 0
  171.     INTEGER017 = ReadLine(STRING018, 2)
  172.     INTEGER018 = ReadLine(STRING018, 3)
  173.     INTEGER019 = ReadLine(STRING018, 6)
  174.     STRING039 = ReadLine(STRING018, 7)
  175.     STRING040 = ReadLine(STRING018, 8)
  176.     STRING041 = ReadLine(STRING019, 1)
  177.     STRING042 = ReadLine(STRING019, 5)
  178.     STRING043 = ReadLine(STRING019, 6)
  179.     STRING044 = ReadLine(STRING019, 7)
  180.     STRING045 = ReadLine(STRING019, 8)
  181.     STRING046 = ReadLine(STRING019, 9)
  182.     STRING047 = ReadLine(STRING019, 10)
  183.     STRING048 = ReadLine(STRING019, 11)
  184.     STRING049 = ReadLine(STRING019, 12)
  185.     STRING050 = ReadLine(STRING019, 13)
  186.     STRING051 = ReadLine(STRING019, 14)
  187.     STRING052 = ReadLine(STRING019, 15)
  188.     STRING053 = ReadLine(STRING019, 16)
  189.     STRING054 = ReadLine(STRING019, 17)
  190.     STRING055 = ReadLine(STRING019, 18)
  191.     STRING056 = ReadLine(STRING019, 19)
  192.     STRING057 = ReadLine(STRING019, 20)
  193.     STRING058 = ReadLine(STRING019, 21)
  194.     STRING059 = ReadLine(STRING019, 22)
  195.     STRING060 = ReadLine(STRING019, 23)
  196.     STRING061 = ReadLine(STRING019, 24)
  197.     STRING062 = ReadLine(STRING019, 25)
  198.     STRING063 = ReadLine(STRING019, 26)
  199.     STRING064 = ReadLine(STRING019, 27)
  200.     STRING065 = ReadLine(STRING019, 28)
  201.     STRING066 = ReadLine(STRING019, 29)
  202.     STRING067 = ReadLine(STRING019, 30)
  203.     STRING068 = ReadLine(STRING019, 31)
  204.     STRING069 = ReadLine(STRING019, 32)
  205.     STRING070 = ReadLine(STRING019, 33)
  206.     STRING071 = ReadLine(STRING019, 34)
  207.     STRING072 = ReadLine(STRING019, 35)
  208.     STRING073 = ReadLine(STRING019, 36)
  209.     STRING074 = ReadLine(STRING019, 37)
  210.     STRING075 = ReadLine(STRING019, 38)
  211.     STRING076 = ReadLine(STRING019, 39)
  212.     STRING077 = ReadLine(STRING019, 40)
  213.     STRING078 = ReadLine(STRING019, 41)
  214.     STRING079 = ReadLine(STRING019, 42)
  215.     STRING080 = ReadLine(STRING019, 43)
  216.     STRING081 = ReadLine(STRING019, 44)
  217.     STRING082 = ReadLine(STRING019, 45)
  218.     STRING083 = ReadLine(STRING019, 46)
  219.     STRING084 = ReadLine(STRING019, 47)
  220.     STRING085 = ReadLine(STRING019, 48)
  221.     STRING086 = ReadLine(STRING019, 49)
  222.     STRING087 = ReadLine(STRING019, 50)
  223.     If (Exist(PPEPath() + "HOTCHAT.KEY")) Then
  224.         FClose 4
  225.         FOpen 4, PPEPath() + "HOTCHAT.KEY", 2, 0
  226.         FGet 4, STRING005
  227.         FGet 4, STRING006
  228.         FGet 4, STRING007
  229.         FGet 4, STRING008
  230.         FClose 4
  231.         INTEGER002 = 1
  232.         STRING001 = STRING005
  233.         STRING002 = STRING006
  234.         STRING003 = STRING007
  235.         STRING004 = STRING008
  236.         Gosub LABEL054
  237.     Else
  238.         INTEGER005 = MinLeft() - 10
  239.         INTEGER006 = 0 - INTEGER005
  240.         AdjTime INTEGER006
  241.         INTEGER010 = INTEGER005
  242.         STRING001 = "       DEMO EVALUATION COPY"
  243.         STRING002 = "PLEASE ASK SYSOP TO REGISTER HOTCHAT"
  244.         STRING003 = "       SUPPORT SHAREWARE!"
  245.         STRING004 = " "
  246.         Gosub LABEL054
  247.         Gosub LABEL055
  248.     Endif
  249.     Newlines 1
  250.     GetUser
  251.     If (U_Expert == 1) Then
  252.         BOOLEAN001 = 1
  253.     Else
  254.         BOOLEAN001 = 0
  255.     Endif
  256.     If (ReadLine(STRING018, 1) == "0") Then
  257.         STRING023 = U_Name()
  258.     ElseIf (U_Alias > "") Then
  259.         STRING023 = U_Alias
  260.     Else
  261.         STRING023 = U_Name()
  262.     Endif
  263.     INTEGER005 = Len(STRING023)
  264.     STRING032 = ""
  265.     INTEGER006 = 15 - INTEGER005
  266.     If (INTEGER006 > 0) Then
  267.         STRING032 = Space(INTEGER006)
  268.     Endif
  269.     If (INTEGER005 > 15) Then
  270.         STRING023 = Left(STRING023, 15)
  271.     Endif
  272.     STRING027 = String(INTEGER009) + "-@X0D(@X0E" + STRING026 + "@X0D)[@X0B" + STRING023 + STRING032 + "@X0D] @X0F: "
  273.     RdUNet PcbNode()
  274.     WrUNet PcbNode(), "G", STRING023, UN_City(), "HOT TUB " + String(INTEGER009), ""
  275.     Cls
  276.     Newlines 1
  277.     PrintLn STRING043
  278.     FClose 4
  279.     FOpen 4, STRING034, 2, 0
  280.     Newlines 1
  281.     PrintLn STRING044
  282.     Print "@X08---------------------------"
  283.     FreshLine
  284.     INTEGER006 = 0
  285.     For INTEGER005 = 1 To INTEGER019
  286.         RdUNet INTEGER005
  287.         If (Upper(Left(UN_Oper(), 7)) == "HOT TUB") Then
  288.             Gosub LABEL045
  289.             If (Len((UN_Name() < 16))) Then
  290.                 INTEGER006 = INTEGER006 + Len(UN_Name())
  291.                 STRING020 = UN_Name()
  292.                 Goto LABEL001
  293.             Endif
  294.             INTEGER006 = INTEGER006 + 15
  295.             STRING020 = Left(UN_Name(), 15)
  296.             :LABEL001
  297.             If (INTEGER006 > 55) Then
  298.                 INTEGER006 = 0
  299.                 FreshLine
  300.                 Print "@X0B" + STRING020 + ", "
  301.                 Continue
  302.             Endif
  303.             Print "@X0B" + STRING020 + ", "
  304.         Endif
  305.     Next
  306.     Backup 2
  307.     Print " "
  308.     PrintLn "@X0F"
  309.     Newlines 1
  310.     GetUser
  311.     If (INTEGER017 == 1) Then
  312.         Log U_Name() + " Entered Hot Chat", 0
  313.     Endif
  314.     STRING020 = "@X0B" + STRING023 + " " + STRING041
  315.     Gosub LABEL046
  316.     PrintLn STRING020
  317.     STRING020 = "*" + STRING020
  318.     Gosub LABEL052
  319.     STRING028 = STRING020
  320.     STRING020 = STRING020 + Chr(7)
  321.     Gosub LABEL050
  322.     STRING020 = ""
  323.     :LABEL002
  324.     FreshLine
  325.     INTEGER008 = 0
  326.     STRING024 = ""
  327.     STRING021 = ""
  328.     While (STRING024 <> STRING011) Do
  329.         STRING024 = Inkey()
  330.         If ((Len(STRING021) == 0) && (Time() - TIME001 > INTEGER018)) Then
  331.             Gosub LABEL047
  332.         Endif
  333.         If ((Len(STRING021) == 199) && (STRING024 <> STRING011)) Then
  334.             PrintLn "@X0A  Line limit reached...@X0F"
  335.             Gosub LABEL046
  336.             Break
  337.         Endif
  338.         If (((((((((((STRING024 == "PGUP") || (STRING024 == "PGDN")) || (STRING024 == "LEFT")) || (STRING024 == "RIGHT")) || (STRING024 == "INS")) || (STRING024 == "DEL")) || (STRING024 == "HOME")) || (STRING024 == "END")) || (STRING024 == "UP")) || (STRING024 == "DOWN")) || (STRING024 == STRING036)) Then
  339.             STRING024 = ""
  340.         Endif
  341.         If ((STRING024 == STRING025) && (Len(STRING021) > 0)) Then
  342.             STRING021 = Left(STRING021, Len(STRING021) - 1)
  343.             Backup 1
  344.             Print " "
  345.             Backup 1
  346.         Endif
  347.         If ((((STRING024 > "") && (STRING024 <> STRING011)) && (STRING024 <> Chr(0))) && (STRING024 <> STRING025)) Then
  348.             STRING021 = STRING021 + STRING024
  349.             Print STRING039 + STRING024
  350.         Endif
  351.     EndWhile
  352.     If (Upper(Left(STRING021, 3)) == "/S,") Then
  353.         Gosub LABEL006
  354.         Goto LABEL002
  355.     Endif
  356.     If (Upper(Left(STRING021, 3)) == "/AL") Then
  357.         Gosub LABEL010
  358.         Goto LABEL002
  359.     Endif
  360.     If (Upper(Left(STRING021, 3)) == "/A,") Then
  361.         Gosub LABEL011
  362.         Goto LABEL002
  363.     Endif
  364.     If (Upper(Left(STRING021, 4)) == "/AS,") Then
  365.         Gosub LABEL014
  366.         Goto LABEL002
  367.     Endif
  368.     If (Upper(Left(STRING021, 4)) == "/INV") Then
  369.         Gosub LABEL017
  370.         Goto LABEL002
  371.     Endif
  372.     If (Upper(Left(STRING021, 4)) == "/PRI") Then
  373.         Gosub LABEL018
  374.         Goto LABEL002
  375.     Endif
  376.     If (Upper(Left(STRING021, 4)) == "/PUB") Then
  377.         Gosub LABEL022
  378.         Goto LABEL002
  379.     Endif
  380.     If (Upper(Left(STRING021, 3)) == "/P,") Then
  381.         Gosub LABEL026
  382.         Goto LABEL002
  383.     Endif
  384.     If (Upper(Left(STRING021, 2)) == "/C") Then
  385.         Gosub LABEL027
  386.         Goto LABEL002
  387.     Endif
  388.     If (Upper(Left(STRING021, 4)) == "/W,S") Then
  389.         Gosub LABEL034
  390.         Goto LABEL002
  391.     Endif
  392.     If (Upper(Left(STRING021, 2)) == "/W") Then
  393.         Gosub LABEL035
  394.         Goto LABEL002
  395.     Endif
  396.     If (Upper(Left(STRING021, 2)) == "/H") Then
  397.         Gosub LABEL038
  398.         Goto LABEL002
  399.     Endif
  400.     If (Upper(Left(STRING021, 2)) == "/?") Then
  401.         Gosub LABEL041
  402.         Goto LABEL002
  403.     Endif
  404.     If (Upper(Left(STRING021, 4)) == "HELP") Then
  405.         Gosub LABEL041
  406.         Goto LABEL002
  407.     Endif
  408.     If (Upper(Left(STRING021, 4)) == "MENU") Then
  409.         Gosub LABEL041
  410.         Goto LABEL002
  411.     Endif
  412.     If (Upper(Left(STRING021, 4)) == "/TOP") Then
  413.         Gosub LABEL042
  414.         Goto LABEL002
  415.     Endif
  416.     If (Upper(Left(STRING021, 2)) == "/S") Then
  417.         Gosub LABEL039
  418.         Gosub LABEL041
  419.         Goto LABEL002
  420.     Endif
  421.     If (Upper(Left(STRING021, 4)) == "STAT") Then
  422.         Gosub LABEL039
  423.         Gosub LABEL041
  424.         Goto LABEL002
  425.     Endif
  426.     If (Upper(Left(STRING021, 2)) == "/T") Then
  427.         Gosub LABEL040
  428.         Gosub LABEL041
  429.         Goto LABEL002
  430.     Endif
  431.     If (Upper(Left(STRING021, 4)) == "TIME") Then
  432.         Gosub LABEL040
  433.         Gosub LABEL041
  434.         Goto LABEL002
  435.     Endif
  436.     If (Upper(Left(STRING021, 4)) == "DATE") Then
  437.         Gosub LABEL040
  438.         Gosub LABEL041
  439.         Goto LABEL002
  440.     Endif
  441.     If (Upper(Left(STRING021, 2)) == "/Q") Then
  442.         Goto LABEL056
  443.     Else
  444.         Select Case (Upper(Left(STRING021, 4)))
  445.             Case "QUIT"
  446.                 Goto LABEL056
  447.             Case "EXIT"
  448.                 Goto LABEL056
  449.             Case "/G"
  450.                 Goto LABEL056
  451.             Endif
  452.     End Select
  453.     If (Left(STRING021, 1) == "/") Then
  454.         FreshLine
  455.         PrintLn STRING045 + STRING021 + " " + STRING046
  456.         FreshLine
  457.         Goto LABEL002
  458.     Endif
  459.     If (Len(STRING021) < " ") Then
  460.         Goto LABEL002
  461.     Endif
  462.     INTEGER005 = 0
  463.     For INTEGER005 = 1 To INTEGER019
  464.         STRING028 = ""
  465.         STRING029 = ""
  466.         INTEGER007 = 50
  467.         STRING028 = STRING021
  468.         RdUNet INTEGER005
  469.         If ((INTEGER005 <> PcbNode()) && (Left(UN_Oper(), 7) == "HOT TUB")) Then
  470.             Gosub LABEL003
  471.         Endif
  472.     Next
  473.     Goto LABEL002
  474.     :LABEL003
  475.     FClose 1
  476.     STRING010 = PPEPath() + "HOTDATA." + String(INTEGER005)
  477.     FAppend 1, STRING010, 2, 0
  478.     If (Ferr(1)) Then
  479.         Goto LABEL003
  480.     Endif
  481.     FreshLine
  482.     While (Len(STRING028) >= INTEGER007) Do
  483.         INTEGER006 = Len(STRING028)
  484.         STRING030 = Mid(STRING028, INTEGER007, 1)
  485.         While (STRING030 <> " ") Do
  486.             INTEGER007 = INTEGER007 - 1
  487.             STRING030 = Mid(STRING028, INTEGER007, 1)
  488.             If (INTEGER007 == 0) Then
  489.                 INTEGER007 = 50
  490.                 STRING030 = " "
  491.             Endif
  492.         EndWhile
  493.         STRING029 = Mid(STRING028, 1, INTEGER007)
  494.         STRING020 = STRING027 + STRING040 + STRING029
  495.         If (INTEGER006 < 50) Then
  496.             STRING028 = Mid(STRING028, INTEGER007 + 1, INTEGER006 - INTEGER007 - 1)
  497.         Else
  498.             STRING028 = Mid(STRING028, INTEGER007 + 1, INTEGER006 - INTEGER007)
  499.         Endif
  500.         :LABEL004
  501.         FPutLn 1, STRING020
  502.         If (Ferr(1)) Then
  503.             :LABEL005
  504.             FClose 1
  505.             FAppend 1, STRING010, 2, 0
  506.             If (Ferr(1)) Then
  507.                 Goto LABEL005
  508.             Endif
  509.             Goto LABEL004
  510.         Endif
  511.         INTEGER007 = 50
  512.     EndWhile
  513.     STRING020 = STRING027 + STRING040 + STRING028
  514.     FPutLn 1, STRING020
  515.     FClose 1
  516.     Return
  517.     :LABEL006
  518.     FreshLine
  519.     STRING028 = ""
  520.     STRING029 = ""
  521.     INTEGER007 = 50
  522.     INTEGER005 = 0
  523.     INTEGER004 = 0
  524.     For INTEGER006 = 1 To 3
  525.         If ((Asc(Mid(STRING021, INTEGER006 + 3, 1)) > 47) && (Asc(Mid(STRING021, INTEGER006 + 3, 1)) < 58)) Then
  526.             INTEGER005 = Mid(STRING021, 4, INTEGER006)
  527.             INTEGER004 = INTEGER006
  528.         Endif
  529.     Next
  530.     If (INTEGER005 > String(INTEGER019)) Then
  531.         PrintLn STRING049 + String(INTEGER005) + " " + STRING050
  532.         Goto LABEL002
  533.     Endif
  534.     RdUNet INTEGER005
  535.     STRING028 = Mid(STRING021, 5 + INTEGER004, Len(STRING021) - 4 + INTEGER004)
  536.     :LABEL007
  537.     FClose 1
  538.     STRING010 = PPEPath() + "HOTDATA." + String(INTEGER005)
  539.     FAppend 1, STRING010, 2, 0
  540.     If (Ferr(1)) Then
  541.         Goto LABEL007
  542.     Endif
  543.     FreshLine
  544.     PrintLn STRING051 + " " + String(INTEGER005)
  545.     FPutLn 1, "*" + Chr(7) + STRING059 + " " + STRING023 + "@X0F"
  546.     While (Len(STRING028) >= INTEGER007) Do
  547.         INTEGER006 = Len(STRING028)
  548.         STRING030 = Mid(STRING028, INTEGER007, 1)
  549.         While (STRING030 <> " ") Do
  550.             INTEGER007 = INTEGER007 - 1
  551.             STRING030 = Mid(STRING028, INTEGER007, 1)
  552.             If (INTEGER007 == 0) Then
  553.                 INTEGER007 = 50
  554.                 STRING030 = " "
  555.             Endif
  556.         EndWhile
  557.         STRING029 = Mid(STRING028, 1, INTEGER007)
  558.         STRING020 = "*@X0D(@X0E" + STRING026 + "@X0D)[@X0B" + STRING023 + STRING032 + "@X0D] @X0F: " + STRING040 + STRING029
  559.         If (INTEGER006 < 50) Then
  560.             STRING028 = Mid(STRING028, INTEGER007 + 1, INTEGER006 - INTEGER007 - 1)
  561.         Else
  562.             STRING028 = Mid(STRING028, INTEGER007 + 1, INTEGER006 - INTEGER007)
  563.         Endif
  564.         :LABEL008
  565.         FPutLn 1, STRING020
  566.         If (Ferr(1)) Then
  567.             :LABEL009
  568.             FClose 1
  569.             FAppend 1, STRING010, 2, 0
  570.             If (Ferr(1)) Then
  571.                 Goto LABEL009
  572.             Endif
  573.             Goto LABEL008
  574.         Endif
  575.         INTEGER007 = 50
  576.     EndWhile
  577.     STRING020 = "*@X0D(@X0E" + STRING026 + "@X0D)[@X0B" + STRING023 + STRING032 + "@X0D] @X0F: " + STRING040 + STRING028
  578.     FPutLn 1, STRING020
  579.     FClose 1
  580.     Return
  581.     :LABEL010
  582.     DispFile STRING035, 2 + 1 + 4
  583.     FreshLine
  584.     Return
  585.     :LABEL011
  586.     FreshLine
  587.     INTEGER004 = 0
  588.     INTEGER005 = 0
  589.     For INTEGER006 = 1 To 3
  590.         If ((Asc(Mid(STRING021, INTEGER006 + 3, 1)) > 47) && (Asc(Mid(STRING021, INTEGER006 + 3, 1)) < 58)) Then
  591.             INTEGER005 = Mid(STRING021, 4, INTEGER006)
  592.             INTEGER004 = INTEGER006
  593.         Endif
  594.     Next
  595.     If (INTEGER005 > String(INTEGER019)) Then
  596.         PrintLn STRING047 + String(INTEGER019) + " " + STRING048
  597.         Goto LABEL002
  598.     Endif
  599.     RdUNet INTEGER005
  600.     If (Left(UN_Oper(), 7) <> "HOT TUB") Then
  601.         PrintLn STRING049 + String(INTEGER005) + " " + STRING050
  602.         Return
  603.     Endif
  604.     Frewind 4
  605.     STRING028 = ""
  606.     STRING029 = ""
  607.     STRING020 = ""
  608.     :LABEL012
  609.     If (Ferr(4)) Goto LABEL013
  610.     FGet 4, STRING028
  611.     FGet 4, STRING029
  612.     STRING028 = RTrim(STRING028, " ")
  613.     If (STRING028 == Upper(Mid(STRING021, 5 + INTEGER004, Len(STRING021) - 4 + INTEGER004))) Then
  614.         STRING029 = RTrim(STRING029, STRING011)
  615.         STRING038 = UN_Name()
  616.         Gosub LABEL053
  617.         STRING020 = String(INTEGER009) + "-" + "@X0B" + STRING023 + STRING029
  618.         STRING031 = STRING020
  619.         FreshLine
  620.         Gosub LABEL050
  621.         PrintLn "@X0B" + STRING023 + STRING029
  622.         Return
  623.     Endif
  624.     Goto LABEL012
  625.     :LABEL013
  626.     PrintLn STRING052 + Upper(Mid(STRING021, 5 + INTEGER004, Len(STRING021) - 4 + INTEGER004)) + " " + STRING046
  627.     FreshLine
  628.     Return
  629.     :LABEL014
  630.     FreshLine
  631.     INTEGER004 = 0
  632.     INTEGER005 = 0
  633.     For INTEGER006 = 1 To 3
  634.         If ((Asc(Mid(STRING021, INTEGER006 + 4, 1)) > 47) && (Asc(Mid(STRING021, INTEGER006 + 4, 1)) < 58)) Then
  635.             INTEGER005 = Mid(STRING021, 5, INTEGER006)
  636.             INTEGER004 = INTEGER006
  637.         Endif
  638.     Next
  639.     If (INTEGER005 > String(INTEGER019)) Then
  640.         PrintLn STRING047 + String(INTEGER019) + " " + STRING048
  641.         Goto LABEL002
  642.     Endif
  643.     RdUNet INTEGER005
  644.     If (Left(UN_Oper(), 7) <> "HOT TUB") Then
  645.         PrintLn STRING049 + String(INTEGER005) + " " + STRING050
  646.         Return
  647.     Endif
  648.     Frewind 4
  649.     STRING028 = ""
  650.     STRING029 = ""
  651.     STRING020 = ""
  652.     :LABEL015
  653.     If (Ferr(4)) Goto LABEL016
  654.     FGet 4, STRING028
  655.     FGet 4, STRING029
  656.     STRING028 = RTrim(STRING028, " ")
  657.     If (STRING028 == Upper(Mid(STRING021, 6 + INTEGER004, Len(STRING021) - 5 + INTEGER004))) Then
  658.         STRING029 = RTrim(STRING029, STRING011)
  659.         STRING038 = UN_Name()
  660.         Gosub LABEL053
  661.         STRING020 = "*@X0B" + STRING023 + STRING029
  662.         STRING031 = STRING020
  663.         PrintLn STRING051 + " " + String(INTEGER005)
  664.         FreshLine
  665.         FClose 1
  666.         STRING010 = PPEPath() + "HOTDATA." + String(INTEGER005)
  667.         FAppend 1, STRING010, 2, 0
  668.         FPutLn 1, "*" + Chr(7) + STRING059 + " " + STRING023 + "@X0F"
  669.         FPutLn 1, STRING031
  670.         FClose 1
  671.         PrintLn Mid(STRING031, 2, Len(STRING031) - 2)
  672.         Return
  673.     Endif
  674.     Goto LABEL015
  675.     :LABEL016
  676.     PrintLn STRING052 + Upper(Mid(STRING021, 6 + INTEGER004, Len(STRING021) - 5 + INTEGER004)) + " " + STRING046
  677.     FreshLine
  678.     Return
  679.     :LABEL017
  680.     FreshLine
  681.     RdUNet PcbNode()
  682.     If (UN_Oper() == "HOT TUB 1") Then
  683.         Gosub LABEL046
  684.         PrintLn STRING053
  685.         PrintLn STRING054
  686.         Goto LABEL002
  687.     Endif
  688.     FOpen 3, PPEPath() + "TUBDATA." + String(INTEGER009), 2, 0
  689.     FGet 3, STRING029
  690.     If (STRING029 == "PUBLIC") Then
  691.         Gosub LABEL046
  692.         PrintLn STRING055
  693.         PrintLn STRING056
  694.         FClose 3
  695.         Goto LABEL002
  696.     Endif
  697.     Newlines 1
  698.     PrintLn "@X07 Node     Callers in the Hot Tubs"
  699.     PrintLn "@X08------   -------------------------"
  700.     For INTEGER005 = 1 To INTEGER019
  701.         RdUNet INTEGER005
  702.         If (Left(UN_Oper(), 7) == "HOT TUB") Then
  703.             PrintLn " @X0E(@X0F" + String(INTEGER005) + "@X0E)       @X0F" + UN_Name()
  704.         Endif
  705.     Next
  706.     Newlines 1
  707.     InputStr STRING058, STRING028, 10, 3, Mask_Num(), 64
  708.     RdUNet STRING028
  709.     If (STRING028 == PcbNode()) Then
  710.         PrintLn STRING057
  711.         Goto LABEL002
  712.     Endif
  713.     If (Left(UN_Oper(), 7) <> "HOT TUB") Then
  714.         PrintLn STRING049 + String(INTEGER005) + " " + STRING050
  715.         Newlines 1
  716.         Goto LABEL002
  717.     Endif
  718.     Newlines 1
  719.     FClose 3
  720.     FAppend 3, PPEPath() + "TUBDATA." + String(INTEGER009), 2, 0
  721.     FPutLn 3, UN_Name()
  722.     FClose 3
  723.     FClose 1
  724.     FAppend 1, STRING010, 2, 0
  725.     FPutLn 1, "*" + Chr(7) + STRING059 + STRING023 + "@X0F"
  726.     FPutLn 1, "*" + STRING060 + String(INTEGER009) + "@X0F"
  727.     FreshLine
  728.     PrintLn STRING061 + STRING028 + "@X0F"
  729.     FClose 1
  730.     Return
  731.     :LABEL018
  732.     FreshLine
  733.     RdUNet PcbNode()
  734.     If (UN_Oper() == "HOT TUB 1") Then
  735.         Gosub LABEL046
  736.         PrintLn STRING062
  737.         PrintLn STRING063
  738.         Goto LABEL002
  739.     Endif
  740.     If (Exist(PPEPath() + "TUBDATA." + String(INTEGER009))) Then
  741.         FClose 3
  742.         FOpen 3, PPEPath() + "TUBDATA." + String(INTEGER009), 2, 0
  743.         FGet 3, STRING029
  744.         If (STRING029 == "PRIVATE") Then
  745.             PrintLn STRING064 + String(INTEGER009) + " " + STRING065
  746.             FClose 3
  747.             Goto LABEL002
  748.             Goto LABEL021
  749.         Endif
  750.         FGet 3, STRING029
  751.         While (Exist(PPEPath() + "TEMPTUB." + String(INTEGER009))) Do
  752.             Print "."
  753.         EndWhile
  754.         FreshLine
  755.         FClose 5
  756.         FCreate 5, PPEPath() + "TEMPTUB" + String(INTEGER009), 2, 0
  757.         FPutLn 5, "PRIVATE"
  758.         FPutLn 5, STRING029
  759.         :LABEL019
  760.         If (Ferr(3)) Goto LABEL020
  761.         FGet 3, STRING029
  762.         FPutLn 5, STRING029
  763.         Goto LABEL019
  764.         :LABEL020
  765.         FClose 5
  766.         FClose 3
  767.         Copy PPEPath() + "TEMPTUB" + String(INTEGER009), PPEPath() + "TUBDATA." + String(INTEGER009)
  768.         Delete PPEPath() + "TEMPTUB" + String(INTEGER009)
  769.         PrintLn STRING064 + String(INTEGER009) + " " + STRING066
  770.         STRING020 = String(INTEGER009) + "-@X0C" + STRING023 + " " + STRING067
  771.         Gosub LABEL050
  772.         FreshLine
  773.         :LABEL021
  774.         Goto LABEL002
  775.     Endif
  776.     Return
  777.     :LABEL022
  778.     FreshLine
  779.     RdUNet PcbNode()
  780.     If (UN_Oper() == "HOT TUB 1") Then
  781.         Gosub LABEL046
  782.         PrintLn STRING053
  783.         Goto LABEL002
  784.     Endif
  785.     If (Exist(PPEPath() + "TUBDATA." + String(INTEGER009))) Then
  786.         FClose 3
  787.         FOpen 3, PPEPath() + "TUBDATA." + String(INTEGER009), 0, 0
  788.         FGet 3, STRING029
  789.         If (STRING029 == "PUBLIC") Then
  790.             PrintLn STRING064 + String(INTEGER009) + " " + STRING068
  791.             FClose 3
  792.             Goto LABEL002
  793.             Goto LABEL025
  794.         Endif
  795.         FGet 3, STRING029
  796.         While (Exist(PPEPath() + "TEMPTUB." + String(INTEGER009))) Do
  797.             Print "."
  798.         EndWhile
  799.         FreshLine
  800.         FClose 5
  801.         FCreate 5, PPEPath() + "TEMPTUB" + String(INTEGER009), 2, 3
  802.         FPutLn 5, "PUBLIC"
  803.         FPutLn 5, STRING029
  804.         :LABEL023
  805.         If (Ferr(3)) Goto LABEL024
  806.         FGet 3, STRING029
  807.         FPutLn 5, STRING029
  808.         Goto LABEL023
  809.         :LABEL024
  810.         FClose 5
  811.         FClose 3
  812.         Copy PPEPath() + "TEMPTUB" + String(INTEGER009), PPEPath() + "TUBDATA." + String(INTEGER009)
  813.         Delete PPEPath() + "TEMPTUB" + String(INTEGER009)
  814.         PrintLn STRING064 + String(INTEGER009) + " " + STRING069
  815.         STRING020 = String(INTEGER009) + "-@X0C" + STRING023 + " " + STRING070
  816.         Gosub LABEL050
  817.         FreshLine
  818.         :LABEL025
  819.         Goto LABEL002
  820.     Endif
  821.     Return
  822.     :LABEL026
  823.     FreshLine
  824.     INTEGER004 = 0
  825.     For INTEGER006 = 1 To 3
  826.         If ((Asc(Mid(STRING021, INTEGER006 + 3, 1)) > 47) && (Asc(Mid(STRING021, INTEGER006 + 3, 1)) < 58)) Then
  827.             INTEGER005 = Mid(STRING021, 4, INTEGER006)
  828.             INTEGER004 = INTEGER006
  829.         Endif
  830.     Next
  831.     GetAltUser INTEGER005
  832.     If (INTEGER005 > String(INTEGER019)) Then
  833.         PrintLn STRING047 + String(INTEGER019) + " " + STRING048
  834.         Goto LABEL002
  835.     Endif
  836.     RdUNet INTEGER005
  837.     If (Left(UN_Oper(), 7) == "HOT TUB") Then
  838.         PrintLn STRING049 + String(INTEGER005) + " " + STRING087
  839.         Goto LABEL002
  840.     Endif
  841.     If ((UN_Stat() <> "A") && (UN_Stat() <> "G")) Then
  842.         PrintLn STRING049 + String(INTEGER005) + " " + STRING071
  843.         Goto LABEL002
  844.     Endif
  845.     Broadcast INTEGER005, INTEGER005, STRING072 + " From " + STRING023 + " - " + Mid(STRING021, INTEGER004 + 5, Len(STRING021) - INTEGER004 + 4)
  846.     PrintLn "@X0A" + STRING072 + " @X0B" + STRING023 + "@X0A - @X0E" + Mid(STRING021, INTEGER004 + 5, Len(STRING021) - INTEGER004 + 4) + "@X0F"
  847.     PrintLn STRING073 + String(INTEGER005) + "@X0F"
  848.     FreshLine
  849.     Return
  850.     :LABEL027
  851.     RdUNet PcbNode()
  852.     INTEGER007 = INTEGER009
  853.     FreshLine
  854.     PrintLn STRING074
  855.     PrintLn STRING076 + UN_Oper() + "@X0F"
  856.     FreshLine
  857.     :LABEL028
  858.     InputInt STRING077, INTEGER009, 1
  859.     FreshLine
  860.     If (INTEGER009 > 255) Then
  861.         PrintLn STRING078 + String(INTEGER009) + " " + STRING079
  862.         Goto LABEL028
  863.     Endif
  864.     If (INTEGER009 < 1) Then
  865.         PrintLn STRING078 + String(INTEGER009) + " " + STRING079
  866.         Goto LABEL028
  867.     Endif
  868.     INTEGER016 = 0
  869.     For INTEGER005 = 1 To INTEGER019
  870.         RdUNet INTEGER005
  871.         For INTEGER006 = 1 To 3
  872.             If (Right(UN_Oper(), INTEGER006) == String(INTEGER009)) Then
  873.                 INTEGER016 = 1
  874.             Endif
  875.         Next
  876.     Next
  877.     If (INTEGER016 == 0) Then
  878.         Delete PPEPath() + "TUBDATA." + String(INTEGER009)
  879.     Endif
  880.     If (Exist(PPEPath() + "TUBDATA." + String(INTEGER009))) Then
  881.         FClose 3
  882.         FOpen 3, PPEPath() + "TUBDATA." + String(INTEGER009), 0, 0
  883.         FGet 3, STRING029
  884.         FGet 3, STRING030
  885.         If (STRING029 == "PRIVATE") Then
  886.             :LABEL029
  887.             If (Ferr(3)) Goto LABEL030
  888.             FGet 3, STRING030
  889.             If (STRING030 == STRING023) Then
  890.                 FClose 3
  891.                 Goto LABEL033
  892.             Endif
  893.             Goto LABEL029
  894.             :LABEL030
  895.             PrintLn STRING064 + String(INTEGER009) + " " + STRING065
  896.             Print STRING075
  897.             Frewind 3
  898.             FGet 3, STRING030
  899.             FGet 3, STRING030
  900.             FGet 3, STRING030
  901.             PrintLn "@X0B" + STRING030 + "@X0F"
  902.             :LABEL031
  903.             If (Ferr(3)) Goto LABEL032
  904.             FGet 3, STRING030
  905.             If (STRING030 > "") Then
  906.                 PrintLn "    @X0E" + STRING030 + "@X0F"
  907.             Endif
  908.             Goto LABEL031
  909.             :LABEL032
  910.             PrintLn STRING080
  911.             INTEGER009 = INTEGER007
  912.             FClose 3
  913.             Goto LABEL002
  914.         Else
  915.             STRING022 = STRING030
  916.             PrintLn STRING081 + STRING030 + " @X0F"
  917.         Endif
  918.     Else
  919.         FClose 3
  920.         FAppend 3, PPEPath() + "TUBDATA." + String(INTEGER009), 2, 0
  921.         FPutLn 3, "PUBLIC"
  922.         FPutLn 3, "GENERAL DISCUSSION"
  923.         FPutLn 3, STRING023
  924.         FClose 3
  925.     Endif
  926.     :LABEL033
  927.     PrintLn STRING082 + String(INTEGER009) + "@X0F"
  928.     STRING031 = "HOT TUB " + String(INTEGER009)
  929.     RdUNet PcbNode()
  930.     WrUNet PcbNode(), "G", STRING023, UN_City(), STRING031, ""
  931.     STRING027 = String(INTEGER009) + "-@X0D(@X0E" + STRING026 + "@X0D)[@X0B" + STRING023 + STRING032 + "@X0D] @X0F: "
  932.     STRING020 = String(INTEGER007) + "-@X0B" + STRING023 + " " + STRING084
  933.     Gosub LABEL050
  934.     STRING020 = String(INTEGER007) + "-" + STRING085 + " " + String(INTEGER009) + "@X0F"
  935.     Gosub LABEL050
  936.     STRING020 = String(INTEGER009) + "-@X0B" + STRING023 + " " + STRING086
  937.     Gosub LABEL050
  938.     PrintLn STRING083 + String(INTEGER009) + "@X0F"
  939.     FClose 3
  940.     Return
  941.     :LABEL034
  942.     INTEGER006 = 0
  943.     FreshLine
  944.     Newlines 1
  945.     PrintLn "@POFF@@X07Node         Status                         Caller"
  946.     PrintLn "@X08----  ---------------------  -----------------------------------------"
  947.     For INTEGER005 = 1 To INTEGER019
  948.         RdUNet INTEGER005
  949.         If (INTEGER005 == PcbNode()) Then
  950.             WrUNet PcbNode(), "G", STRING023, UN_City(), "HOT TUB " + String(INTEGER009), ""
  951.         Endif
  952.         Select Case (UN_Stat())
  953.             Case "A"
  954.                 STRING028 = "Available to Chat    "
  955.             Case "G"
  956.                 STRING028 = "Chatting in HOT TUB  "
  957.             Case "B"
  958.                 STRING028 = "Out of Code in DOOR  "
  959.             Case "C"
  960.                 STRING028 = "Entering a Message   "
  961.             Case "D"
  962.                 STRING028 = "Out of Code in DOOR  "
  963.             Case "E"
  964.                 STRING028 = "Entering a Message   "
  965.             Case "F"
  966.                 STRING028 = "Transferring a File  "
  967.             Case "L"
  968.                 STRING028 = "Auto Logoff Pending  "
  969.             Case "M"
  970.                 STRING028 = "Message              "
  971.             Case "N"
  972.                 STRING028 = "CHATTING Private     "
  973.             Case "O"
  974.                 STRING028 = "Logging into System  "
  975.             Case "P"
  976.                 STRING028 = "Paging the Sysop     "
  977.             Case "R"
  978.                 STRING028 = "CHAT Request Sent    "
  979.             Case "S"
  980.                 STRING028 = "Entering a Message   "
  981.             Case "T"
  982.                 STRING028 = "Transferring a File  "
  983.             Case "U"
  984.                 STRING028 = "Unavailable for PAGE "
  985.             Case "W"
  986.                 STRING028 = "Waiting for Node     "
  987.             Case "X"
  988.                 STRING028 = "Drop to DOS Pending  "
  989.             Case "Y"
  990.                 STRING028 = "No Caller this Node  "
  991.             Case "Z"
  992.                 STRING028 = "No Caller this Node  "
  993.             Case Else
  994.                 STRING028 = "No Caller this Node  "
  995.         End Select
  996.         Gosub LABEL045
  997.         Print "@X0F " + String(INTEGER005)
  998.         Forward 3 - Len(String(INTEGER005))
  999.         PrintLn "   " + STRING028 + "  " + UN_Name() + STRING033 + UN_City()
  1000.         INTEGER006 = INTEGER006 + 1
  1001.         If (INTEGER006 == 19) Then
  1002.             INTEGER006 = 1
  1003.             STRING028 = "Y"
  1004.             FreshLine
  1005.             Newlines 1
  1006.             InputYN "Do you want to continue display", STRING028, 10
  1007.             If (Upper(STRING028) == "N") Then
  1008.                 Return
  1009.             Endif
  1010.             FreshLine
  1011.             Newlines 1
  1012.             STRING028 = ""
  1013.         Endif
  1014.     Next
  1015.     FreshLine
  1016.     Newlines 1
  1017.     Return
  1018.     :LABEL035
  1019.     FreshLine
  1020.     Newlines 1
  1021.     PrintLn "@PON@@X07Node   Tub Number       Tub Topic              Caller          Tub Status"
  1022.     PrintLn "@X08----  ------------  --------------------  ------------------  ------------"
  1023.     For INTEGER005 = 1 To INTEGER019
  1024.         RdUNet INTEGER005
  1025.         If (Left(UN_Oper(), 7) == "HOT TUB") Then
  1026.             Gosub LABEL045
  1027.             If (UN_Oper() == "HOT TUB 1") Then
  1028.                 STRING030 = "GENERAL DISCUSSION"
  1029.             Endif
  1030.             INTEGER004 = 0
  1031.             STRING031 = ""
  1032.             For INTEGER006 = 1 To 3
  1033.                 If ((Asc(Mid(UN_Oper(), INTEGER006 + 8, 1)) > 47) && (Asc(Mid(UN_Oper(), INTEGER006 + 8, 1)) < 58)) Then
  1034.                     STRING031 = Mid(UN_Oper(), 9, INTEGER006)
  1035.                     INTEGER004 = INTEGER006
  1036.                 Endif
  1037.             Next
  1038.             If (Exist(PPEPath() + "TUBDATA." + STRING031)) Then
  1039.                 FClose 3
  1040.                 FOpen 3, PPEPath() + "TUBDATA." + STRING031, 2, 0
  1041.                 FGet 3, STRING030
  1042.                 FGet 3, STRING030
  1043.                 FClose 3
  1044.             Endif
  1045.             STRING028 = Right(UN_Oper(), 1)
  1046.             If (FileInf(PPEPath() + "TUBDATA." + STRING028, 1)) Then
  1047.                 FClose 3
  1048.                 FOpen 3, PPEPath() + "TUBDATA." + STRING028, 0, 0
  1049.                 FGet 3, STRING029
  1050.                 If (STRING029 == "PRIVATE") Then
  1051.                     STRING037 = "PRIVATE"
  1052.                     Goto LABEL036
  1053.                 Endif
  1054.                 STRING037 = "PUBLIC"
  1055.                 :LABEL036
  1056.                 FClose 3
  1057.                 Goto LABEL037
  1058.             Endif
  1059.             STRING037 = "PUBLIC"
  1060.             :LABEL037
  1061.             Print "@X0F " + String(INTEGER005)
  1062.             Forward 3 - Len(String(INTEGER005))
  1063.             Print "   " + UN_Oper()
  1064.             Forward 22 - GetX()
  1065.             Print STRING030
  1066.             Forward 44 - GetX()
  1067.             Print UN_Name()
  1068.             Forward 64 - GetX()
  1069.             PrintLn STRING037
  1070.             If (INTEGER005 == PcbNode()) Then
  1071.                 WrUNet PcbNode(), "G", STRING023, UN_City(), "HOT TUB " + String(INTEGER009), ""
  1072.             Endif
  1073.         Endif
  1074.     Next
  1075.     Print "@POFF@"
  1076.     FreshLine
  1077.     Newlines 1
  1078.     Return
  1079.     :LABEL038
  1080.     Cls
  1081.     DispFile STRING015, 2 + 1 + 4
  1082.     Goto LABEL002
  1083.     Return
  1084.     :LABEL039
  1085.     FreshLine
  1086.     DispFile STRING016, 2 + 1 + 4
  1087.     FreshLine
  1088.     Return
  1089.     :LABEL040
  1090.     FreshLine
  1091.     DispFile STRING088, 2 + 1 + 4
  1092.     FreshLine
  1093.     Return
  1094.     :LABEL041
  1095.     FreshLine
  1096.     DispFile STRING017, 2 + 1 + 4
  1097.     FreshLine
  1098.     Return
  1099.     :LABEL042
  1100.     FreshLine
  1101.     RdUNet PcbNode()
  1102.     If (UN_Oper() == "HOT TUB 1") Then
  1103.         Gosub LABEL046
  1104.         PrintLn "@X0AYou cannot change the topic of tub # @X0E1@X0A!@X0F"
  1105.         PrintLn "@X0ABecause it is a public tub only.@X0F"
  1106.         Goto LABEL002
  1107.     Endif
  1108.     If (Exist(PPEPath() + "TUBDATA." + String(INTEGER009))) Then
  1109.         FClose 3
  1110.         FOpen 3, PPEPath() + "TUBDATA." + String(INTEGER009), 2, 0
  1111.         FGet 3, STRING029
  1112.         FGet 3, STRING029
  1113.         Newlines 1
  1114.         Print "@X0ACurrent topic is @X0E" + STRING029 + "@X0F"
  1115.         Newlines 1
  1116.         STRING030 = "Y"
  1117.         InputYN "Do you want to change the topic", STRING030, 15
  1118.         FreshLine
  1119.         If (Upper(STRING030) == "N") Then
  1120.             Goto LABEL002
  1121.         Endif
  1122.         STRING030 = ""
  1123.         InputStr "Enter the NEW Topic", STRING030, 15, 15, Mask_Ascii(), 64 + 2 + 4
  1124.         FreshLine
  1125.         While (Exist(PPEPath() + "TEMPTUB." + String(INTEGER009))) Do
  1126.             Print "."
  1127.         EndWhile
  1128.         FreshLine
  1129.         Frewind 3
  1130.         FClose 5
  1131.         FCreate 5, PPEPath() + "TEMPTUB" + String(INTEGER009), 2, 0
  1132.         FGet 3, STRING029
  1133.         FPutLn 5, STRING029
  1134.         FGet 3, STRING029
  1135.         FPutLn 5, STRING030
  1136.         STRING029 = ""
  1137.         :LABEL043
  1138.         If (Ferr(3)) Goto LABEL044
  1139.         FGet 3, STRING029
  1140.         FPutLn 5, STRING029
  1141.         Goto LABEL043
  1142.         :LABEL044
  1143.         FClose 5
  1144.         FClose 3
  1145.         Copy PPEPath() + "TEMPTUB" + String(INTEGER009), PPEPath() + "TUBDATA." + String(INTEGER009)
  1146.         Delete PPEPath() + "TEMPTUB" + String(INTEGER009)
  1147.     Endif
  1148.     STRING022 = STRING030
  1149.     STRING028 = "@X0B" + STRING023 + "@X0A Changed this Tubs topic to @X0E" + STRING030 + "@X0F"
  1150.     Print STRING028
  1151.     STRING020 = String(INTEGER009) + "-" + STRING028
  1152.     Gosub LABEL050
  1153.     Return
  1154.     Goto LABEL002
  1155.     :LABEL045
  1156.     If (UN_City() > "") Then
  1157.         STRING033 = " - "
  1158.     Else
  1159.         STRING033 = "   "
  1160.     Endif
  1161.     Return
  1162.     :LABEL046
  1163.     Print Chr(7)
  1164.     MPrint Chr(7)
  1165.     Return
  1166.     :LABEL047
  1167.     If (FileInf(PPEPath() + "HOTDATA." + STRING026, 1)) Then
  1168.         FClose 2
  1169.         FOpen 2, PPEPath() + "HOTDATA." + String(STRING026), 0, 3
  1170.         If (Ferr(2)) Then
  1171.             Goto LABEL047
  1172.         Endif
  1173.         STRING028 = ""
  1174.         :LABEL048
  1175.         If (Ferr(2)) Goto LABEL049
  1176.         FGet 2, STRING028
  1177.         If (STRING028 > "") Then
  1178.             For INTEGER005 = 1 To 4
  1179.                 If (Mid(STRING028, INTEGER005, 1) == "-") Then
  1180.                     INTEGER006 = INTEGER005
  1181.                 Endif
  1182.             Next
  1183.             If (Left(STRING028, INTEGER006) == String(INTEGER009) + "-") Then
  1184.                 FreshLine
  1185.                 PrintLn Mid(STRING028, INTEGER006 + 1, Len(STRING028))
  1186.             Endif
  1187.             If (Left(STRING028, 1) == "*") Then
  1188.                 FreshLine
  1189.                 PrintLn Mid(STRING028, 2, Len(STRING028))
  1190.             Endif
  1191.         Endif
  1192.         STRING028 = ""
  1193.         Goto LABEL048
  1194.         :LABEL049
  1195.         FClose 2
  1196.         Delete PPEPath() + "HOTDATA." + STRING026
  1197.         RdUNet PcbNode()
  1198.         WrUNet PcbNode(), "G", STRING023, UN_City(), "HOT TUB " + String(INTEGER009), ""
  1199.         TIME001 = Time()
  1200.     Endif
  1201.     If ((MinLeft() == 5) && (INTEGER011 == 0)) Then
  1202.         FreshLine
  1203.         Gosub LABEL046
  1204.         PrintLn "@X0A(5 Minute Warning)@X0F"
  1205.         INTEGER011 = 1
  1206.     Endif
  1207.     If ((MinLeft() == 4) && (INTEGER012 == 0)) Then
  1208.         FreshLine
  1209.         Gosub LABEL046
  1210.         PrintLn "@X0A(4 Minute Warning)@X0F"
  1211.         INTEGER012 = 1
  1212.     Endif
  1213.     If ((MinLeft() == 3) && (INTEGER013 == 0)) Then
  1214.         FreshLine
  1215.         Gosub LABEL046
  1216.         PrintLn "@X0A(3 Minute Warning)@X0F"
  1217.         INTEGER013 = 1
  1218.     Endif
  1219.     If ((MinLeft() == 2) && (INTEGER014 == 0)) Then
  1220.         FreshLine
  1221.         Gosub LABEL046
  1222.         PrintLn "@X0A(2 Minute Warning)@X0F"
  1223.         INTEGER014 = 1
  1224.     Endif
  1225.     If ((MinLeft() == 1) && (INTEGER015 == 0)) Then
  1226.         FreshLine
  1227.         Gosub LABEL046
  1228.         PrintLn "@X0A(1 Minute Warning)@X0F"
  1229.     Else
  1230.         Return
  1231.         :LABEL050
  1232.         INTEGER005 = 0
  1233.         For INTEGER005 = 1 To INTEGER019
  1234.             RdUNet INTEGER005
  1235.             If ((INTEGER005 <> PcbNode()) && (Left(UN_Oper(), 7) == "HOT TUB")) Then
  1236.                 :LABEL051
  1237.                 FClose 1
  1238.                 STRING010 = PPEPath() + "HOTDATA." + String(INTEGER005)
  1239.                 FAppend 1, STRING010, 2, 0
  1240.                 If (Ferr(1)) Then
  1241.                     Goto LABEL051
  1242.                 Endif
  1243.                 FPutLn 1, STRING020
  1244.                 FClose 1
  1245.             Endif
  1246.         Next
  1247.         Return
  1248.         :LABEL052
  1249.         If (Exist(PPEPath() + "HOTDATA." + String(PcbNode()))) Then
  1250.             Delete PPEPath() + "HOTDATA." + String(PcbNode())
  1251.         Endif
  1252.         Return
  1253.         :LABEL053
  1254.         STRING030 = ""
  1255.         For INTEGER007 = 1 To Len(STRING029)
  1256.             If (Upper(Mid(STRING029, INTEGER007, 12)) == "@HOT_OPTEXT@") Then
  1257.                 STRING030 = Mid(STRING029, 1, INTEGER007 - 1)
  1258.                 INTEGER003 = Len(STRING030)
  1259.                 STRING030 = STRING030 + STRING038
  1260.                 STRING030 = STRING030 + Mid(STRING029, INTEGER003 + 13, Len(STRING029) - INTEGER003 - 10)
  1261.                 STRING029 = STRING030
  1262.             Endif
  1263.         Next
  1264.         Return
  1265.         If (FileInf(PPEPath() + "HOTTUB." + String(INTEGER009), 1)) Then
  1266.             FClose 3
  1267.         Endif
  1268.         Return
  1269.         :LABEL054
  1270.         Cls
  1271.         Return
  1272.         :LABEL055
  1273.         Newlines 5
  1274.         Forward 12
  1275.         PrintLn "@X1E    THIS PAUSE REMOVED WHEN REGISTERED    @X0F"
  1276.         Forward 12
  1277.         PrintLn "@X1E  DEMO VERSION ALLOWS 10 MINUTES PER CALL @X0F"
  1278.         TIME001 = Time()
  1279.         Newlines 2
  1280.         INTEGER006 = Time() - TIME001
  1281.         INTEGER005 = INTEGER006
  1282.         Print 30 - INTEGER006
  1283.         While (Time() - TIME001 < 30) Do
  1284.             INTEGER006 = Time() - TIME001
  1285.             If (INTEGER005 < INTEGER006) Then
  1286.                 Backup 3
  1287.                 Print "  "
  1288.                 Backup 3
  1289.                 Print 30 - INTEGER006
  1290.                 INTEGER005 = INTEGER006
  1291.             Endif
  1292.         EndWhile
  1293.         Backup 3
  1294.         Print "  "
  1295.         Cls
  1296.         Return
  1297.         Cls
  1298.         Gosub LABEL046
  1299.         Gosub LABEL046
  1300.         Gosub LABEL046
  1301.         Newlines 3
  1302.         Print "@X0F"
  1303.         PrintLn "                     THIS SOFTWARE HAS BEEN PIRATED!"
  1304.         Newlines 1
  1305.         PrintLn "               CALL JOE'S SOFTWARE STORE AT (317) 849-2196"
  1306.         Newlines 1
  1307.         PrintLn "                 For A $1000.00 REWARD upon conviction. "
  1308.         Newlines 5
  1309.         Wait
  1310.         Goto LABEL057
  1311.     Endif
  1312.     :LABEL056
  1313.     GetUser
  1314.     If (INTEGER017 == 1) Then
  1315.         Log U_Name() + " Exited Hot Chat", 0
  1316.     Endif
  1317.     If (INTEGER010 > 0) Then
  1318.         AdjTime INTEGER010
  1319.     Endif
  1320.     STRING020 = "@X0B" + STRING023 + "@X0F " + ReadLine(STRING019, 2)
  1321.     FreshLine
  1322.     PrintLn STRING020
  1323.     STRING020 = "*" + Chr(7) + STRING020
  1324.     Gosub LABEL050
  1325.     FClose 1
  1326.     FClose 2
  1327.     FClose 3
  1328.     FClose 4
  1329.     FClose 5
  1330.     Print "@PON@"
  1331.     If (Upper(Left(STRING021, 2)) == "/G") Then
  1332.         Goodbye
  1333.     Endif
  1334.     :LABEL057
  1335.  
  1336. ;------------------------------------------------------------------------------
  1337. ;
  1338. ; Usage report (before postprocessing)
  1339. ;
  1340. ; ■ Statements used :
  1341. ;
  1342. ;    5       Cls
  1343. ;    1       Wait
  1344. ;    307     Goto 
  1345. ;    304     Let 
  1346. ;    25      Print 
  1347. ;    71      PrintLn 
  1348. ;    174     If 
  1349. ;    5       DispFile 
  1350. ;    3       FCreate 
  1351. ;    10      FOpen 
  1352. ;    9       FAppend 
  1353. ;    50      FClose 
  1354. ;    31      FGet 
  1355. ;    23      FPutLn 
  1356. ;    3       GetUser
  1357. ;    6       Delete 
  1358. ;    2       AdjTime 
  1359. ;    2       Log 
  1360. ;    2       InputStr 
  1361. ;    2       InputYN 
  1362. ;    1       InputInt 
  1363. ;    61      Gosub 
  1364. ;    31      Return
  1365. ;    22      Newlines 
  1366. ;    1       Goodbye
  1367. ;    1       Broadcast 
  1368. ;    20      RdUNet 
  1369. ;    5       WrUNet 
  1370. ;    6       Backup 
  1371. ;    7       Forward 
  1372. ;    52      FreshLine
  1373. ;    1       MPrint 
  1374. ;    4       Frewind 
  1375. ;    3       Copy 
  1376. ;    1       GetAltUser 
  1377. ;
  1378. ;
  1379. ; ■ Functions used :
  1380. ;
  1381. ;    367     +
  1382. ;    34      -
  1383. ;    108     ==
  1384. ;    14      <>
  1385. ;    27      <
  1386. ;    15      <=
  1387. ;    21      >
  1388. ;    32      >=
  1389. ;    174     !
  1390. ;    49      &&
  1391. ;    25      ||
  1392. ;    28      Len(
  1393. ;    34      Upper()
  1394. ;    39      Mid()
  1395. ;    41      Left()
  1396. ;    2       Right()
  1397. ;    1       Space()
  1398. ;    16      Ferr()
  1399. ;    11      Chr()
  1400. ;    10      Asc()
  1401. ;    4       RTrim()
  1402. ;    7       Time()
  1403. ;    4       U_Name()
  1404. ;    1       Sec()
  1405. ;    1       Inkey()
  1406. ;    83      String()
  1407. ;    1       Mask_Num()
  1408. ;    1       Mask_Ascii()
  1409. ;    51      PPEPath()
  1410. ;    21      PcbNode()
  1411. ;    54      ReadLine()
  1412. ;    22      UN_Stat()
  1413. ;    10      UN_Name()
  1414. ;    7       UN_City()
  1415. ;    21      UN_Oper()
  1416. ;    6       MinLeft()
  1417. ;    12      Exist()
  1418. ;    4       LangExt()
  1419. ;    3       GetX()
  1420. ;    3       FileInf()
  1421. ;
  1422. ;------------------------------------------------------------------------------
  1423. ;
  1424. ; Analysis flags : RAM
  1425. ;
  1426. ; R - Read user ■ 5
  1427. ;     User records are read, this may signify that someone wants to get
  1428. ;     various informations about a user (for example his password), but
  1429. ;     this may also be normal for a program accessing user records (for
  1430. ;     example a User Editor)
  1431. ;     ■ Search for : GETALTUSER
  1432. ;
  1433. ; A - Adjust online time remaining ■ 5
  1434. ;     Program modify the amount of online time remaining, this may
  1435. ;     be a way to bypass time limits
  1436. ;     ■ Search for : ADJTIME
  1437. ;
  1438. ; M - Send text to modem only ■ 4
  1439. ;     Some informations are sent only to the modem, not to the local
  1440. ;     screen, this is a well known way to make stealth backdoors, Check!
  1441. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  1442. ;
  1443. ;------------------------------------------------------------------------------
  1444. ;
  1445. ; Postprocessing report
  1446. ;
  1447. ;    15      For/Next
  1448. ;    9       While/EndWhile
  1449. ;    119     If/Then or If/Then/Else
  1450. ;    2       Select Case
  1451. ;
  1452. ;------------------------------------------------------------------------------
  1453. ;                 AEGiS Corp - Break the routines, code against the machines!
  1454. ;------------------------------------------------------------------------------
  1455.